/**
 * 你的任务是计算 ab 对 1337 取模，a 是一个正整数，b 是一个非常大的正整数且会以数组形式给出。
 *
 *题解：https://labuladong.gitee.io/algo/4/32/117/
 */
class SuperPow {
    int base = 1337;
    public int superPow(int a, int[] b) {
        int len = b.length;
        return superPow(a,b,len-1);
    }
    public int superPow(int a,int[] b,int i) {
        if(i==-1) {
            return 1;
        }
        int last = b[i];
        i--;
        int part1 = myPow2(a,last);
        int part2 = myPow2(superPow(a,b,i),10);
        return (part1*part2)%base;
    }

    /**
     * 快速求幂法一
     * @param a
     * @param k
     * @return
     */
    public int myPow(int a,int k) {
        a%=base;
        int res =1;
        for(int i = 0;i<k;i++) {
            res*=a;
            res%=base;
        }
        return res;
    }

    /**
     * 快速求幂法二
     * @param a
     * @param k
     * @return
     */
    public int myPow2(int a,int k) {
        if(k==0) {
            return 1;
        }
        a%=base;
        if(k%2==1) {
            return (a*myPow2(a,k-1))%base;
        } else {
            int sub = myPow2(a,k/2);
            return (sub*sub)%base;
        }
    }
}